#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QDebug>
#include <QLineEdit>
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 文本标签
    //这里我们将对象挂在了对象树上，会在合适的时候自动释放
    //QLabel* label = new QLabel(this); //给当前这个label对象制定一个父对象
    //label->setText(QString("Hello Qt!")); //QString, QVector, QList, QMap这些是时代的产物

    //QLabel label(this);
    //label.setText("Hello Qt!"); //这种写法，会随着构造函数的结束而释放在栈上创建的label

    // 输入框
    //QLineEdit* edit = new QLineEdit(this);
    //edit->setText("Hello Qt!");

    //pushButton：信号和槽之间的链接操作
    //ui->pushButton->setText("Hello QT!");
    //      谁发出的操作          发出了什么信号     谁来处理      怎么处理
    //connect(ui->pushButton, &QPushButton::clicked, this, &Widget::handleClick);

    // 笛卡尔坐标系
    QPushButton* button = new QPushButton(this);
    button->setText("按钮");
    button->move(200, 300);
    this->move(100, 0); // widget没有父元素或者说父元素是整个桌面
}

/*
void Widget::handleClick()
{
    // 在widget.ui中，每个组件有一个objectName，修改他就可以更改组件的名字
    if(ui->pushButton->text() == QString("Hello QT!"))
        ui->pushButton->setText("Hello MacOs");
    else
        ui->pushButton->setText("Hello QT!");
}
*/

Widget::~Widget()
{
    delete ui;
}
